Second-Order Functions and Theorems in ACL2
نویسنده
چکیده
SOFT (‘Second-Order Functions and Theorems’) is a tool to mimic second-order functions and theorems in the first-order logic of ACL2. Second-order functions are mimicked by first-order functions that reference explicitly designated uninterpreted functions that mimic function variables. First-order theorems over these second-order functions mimic second-order theorems universally quantified over function variables. Instances of second-order functions and theorems are systematically generated by replacing function variables with functions. SOFT can be used to carry out program refinement inside ACL2, by constructing a sequence of increasingly stronger second-order predicates over one or more target functions: the sequence starts with a predicate that specifies requirements for the target functions, and ends with a predicate that provides executable definitions for the target functions.
منابع مشابه
Adding a Total Order to ACL2
We show that adding a total order to ACL2, via new axioms, allows for simpler and more elegant definitions of functions and libraries of theorems. We motivate the need for a total order with a simple example and explain how a total order can be used to simplify existing libraries of theorems (i.e., ACL2 books) on finite set theory and records. These ideas have been incorporated into ACL2 Versio...
متن کاملA Macro for Reusing Abstract Functions and Theorems
Even though the ACL2 logic is first order, the ACL2 system offers several mechanisms providing users with some operations akin to higher order logic ones. In this paper, we propose a macro, named instance-of-defspec, to ease the reuse of abstract functions and facts proven about them. Defspec is an ACL2 book allowing users to define constrained functions and their associated properties. It cont...
متن کاملImplementing an Automatic Differentiator in ACL2
The foundational theory of differentiation was developed as part of the original release of ACL2(r). In work reported at the last ACL2 Workshop, we presented theorems justifying the usual differentiation rules, including the chain rule and the derivative of inverse functions. However, the process of applying these theorems to formalize the derivative of a particular function is completely manua...
متن کاملACL2(ml): Machine-Learning for ACL2
ACL2(ml) is an extension for the Emacs interface of ACL2. This tool uses machine-learning to help the ACL2 user during the proof-development. Namely, ACL2(ml) gives hints to the user in the form of families of similar theorems, and generates auxiliary lemmas automatically. In this paper, we present the two most recent extensions for ACL2(ml). First, ACL2(ml) can suggest now families of similar ...
متن کاملBacktracking and Induction in ACL2
This paper presents an extension to ACL2 that allows backtracking to occur when a proof fails. Using this extension, two techniques are implemented for proving theorems. The first of these allows ACL2 to find alternate substitutions for unmeasured variables during induction. The second allows ACL2 to try alternate generalizations when one fails. These techniques combine to allow ACL2 to prove t...
متن کامل